import request from '@/utils/request'

// 查询供应商列表
export function listSuppliers(query) {
  return request({
    url: '/api/supplier/list',
    method: 'get',
    params: query
  })
}

// 查询所有供应商（不分页）
export function listAllSuppliers() {
  return request({
    url: '/api/supplier/listAll',
    method: 'get'
  })
}

// 查询供应商详细信息
export function getSupplier(supplierId) {
  return request({
    url: '/api/supplier/' + supplierId,
    method: 'get'
  })
}

// 新增供应商
export function addSupplier(data) {
  return request({
    url: '/api/supplier/add',
    method: 'post',
    data: data
  })
}

// 修改供应商
export function updateSupplier(data) {
  return request({
    url: '/api/supplier/update',
    method: 'put',
    data: data
  })
}

// 删除供应商
export function deleteSupplier(supplierId) {
  return request({
    url: '/api/supplier/' + supplierId,
    method: 'delete'
  })
}

// 批量删除供应商
export function deleteSupplierBatch(supplierIds) {
  return request({
    url: '/api/supplier/batch/' + supplierIds,
    method: 'delete'
  })
}

// 更新供应商评分
export function updateSupplierScore(data) {
  return request({
    url: '/api/supplier/score',
    method: 'put',
    data: data
  })
}

// 检查供应商编码是否存在
export function checkSupplierCodeExists(supplierCode, supplierId) {
  return request({
    url: '/api/supplier/checkCode',
    method: 'get',
    params: {
      supplierCode,
      supplierId
    }
  })
}

// 检查供应商名称是否存在
export function checkSupplierNameExists(supplierName, supplierId) {
  return request({
    url: '/api/supplier/checkName',
    method: 'get',
    params: {
      supplierName,
      supplierId
    }
  })
}

// 导出供应商数据
export function exportSupplier(query) {
  return request({
    url: '/api/api/supplier/export',
    method: 'get',
    params: query,
    responseType: 'blob'
  })
}

// 导入供应商数据API可以直接在上传组件中使用
// 此处为上传前的校验逻辑或其他操作
export function importSupplier(file) {
  const formData = new FormData()
  formData.append('file', file)
  return request({
    url: '/api/api/supplier/import',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}
